home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 2010 April / PCWorld0410.iso / hity wydania / Ubuntu 9.10 PL / karmelkowy-koliberek-desktop-9.10-i386-PL.iso / casper / filesystem.squashfs / usr / include / linux / hdlcdrv.h < prev    next >
C/C++ Source or Header  |  2009-10-16  |  3KB  |  111 lines

  1. /*
  2.  * hdlcdrv.h  -- HDLC packet radio network driver.
  3.  * The Linux soundcard driver for 1200 baud and 9600 baud packet radio
  4.  * (C) 1996-1998 by Thomas Sailer, HB9JNX/AE4WA
  5.  */
  6.  
  7. #ifndef _HDLCDRV_H
  8. #define _HDLCDRV_H
  9.  
  10. /* -------------------------------------------------------------------- */
  11. /*
  12.  * structs for the IOCTL commands
  13.  */
  14.  
  15. struct hdlcdrv_params {
  16.     int iobase;
  17.     int irq;
  18.     int dma;
  19.     int dma2;
  20.     int seriobase;
  21.     int pariobase;
  22.     int midiiobase;
  23. };    
  24.  
  25. struct hdlcdrv_channel_params {
  26.     int tx_delay;  /* the transmitter keyup delay in 10ms units */
  27.     int tx_tail;   /* the transmitter keyoff delay in 10ms units */
  28.     int slottime;  /* the slottime in 10ms; usually 10 = 100ms */
  29.     int ppersist;  /* the p-persistence 0..255 */
  30.     int fulldup;   /* some driver do not support full duplex, setting */
  31.                    /* this just makes them send even if DCD is on */
  32. };    
  33.  
  34. struct hdlcdrv_old_channel_state {
  35.       int ptt;
  36.       int dcd;
  37.       int ptt_keyed;
  38. };
  39.  
  40. struct hdlcdrv_channel_state {
  41.      int ptt;
  42.      int dcd;
  43.      int ptt_keyed;
  44.      unsigned long tx_packets;
  45.      unsigned long tx_errors;
  46.      unsigned long rx_packets;
  47.      unsigned long rx_errors;
  48. };
  49.  
  50. struct hdlcdrv_ioctl {
  51.     int cmd;
  52.     union {
  53.         struct hdlcdrv_params mp;
  54.         struct hdlcdrv_channel_params cp;
  55.         struct hdlcdrv_channel_state cs;
  56.         struct hdlcdrv_old_channel_state ocs;
  57.         unsigned int calibrate;
  58.         unsigned char bits;
  59.         char modename[128];
  60.         char drivername[32];
  61.     } data;
  62. };
  63.  
  64. /* -------------------------------------------------------------------- */
  65.  
  66. /*
  67.  * ioctl values
  68.  */
  69. #define HDLCDRVCTL_GETMODEMPAR       0
  70. #define HDLCDRVCTL_SETMODEMPAR       1
  71. #define HDLCDRVCTL_MODEMPARMASK      2  /* not handled by hdlcdrv */
  72. #define HDLCDRVCTL_GETCHANNELPAR    10
  73. #define HDLCDRVCTL_SETCHANNELPAR    11
  74. #define HDLCDRVCTL_OLDGETSTAT       20
  75. #define HDLCDRVCTL_CALIBRATE        21
  76. #define HDLCDRVCTL_GETSTAT          22
  77.  
  78. /*
  79.  * these are mainly for debugging purposes
  80.  */
  81. #define HDLCDRVCTL_GETSAMPLES       30
  82. #define HDLCDRVCTL_GETBITS          31
  83.  
  84. /*
  85.  * not handled by hdlcdrv, but by its depending drivers
  86.  */
  87. #define HDLCDRVCTL_GETMODE          40
  88. #define HDLCDRVCTL_SETMODE          41
  89. #define HDLCDRVCTL_MODELIST         42
  90. #define HDLCDRVCTL_DRIVERNAME       43
  91.  
  92. /*
  93.  * mask of needed modem parameters, returned by HDLCDRVCTL_MODEMPARMASK
  94.  */
  95. #define HDLCDRV_PARMASK_IOBASE      (1<<0)
  96. #define HDLCDRV_PARMASK_IRQ         (1<<1)
  97. #define HDLCDRV_PARMASK_DMA         (1<<2)
  98. #define HDLCDRV_PARMASK_DMA2        (1<<3)
  99. #define HDLCDRV_PARMASK_SERIOBASE   (1<<4)
  100. #define HDLCDRV_PARMASK_PARIOBASE   (1<<5)
  101. #define HDLCDRV_PARMASK_MIDIIOBASE  (1<<6)
  102.  
  103. /* -------------------------------------------------------------------- */
  104.  
  105.  
  106. /* -------------------------------------------------------------------- */
  107.  
  108. #endif /* _HDLCDRV_H */
  109.  
  110. /* -------------------------------------------------------------------- */
  111.